import pandas
import pathlib
import os
import tkinter.filedialog
import shutil
import uuid
import random

# 初始的运行路径
InitRunPath = os.getcwd()

# 获取当前脚本所在的路径
CurrentPath = pathlib.Path(__file__).parent.absolute().resolve().__str__()

# 获取当前用户的桌面路径
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")

# 切换运行路径到脚本所在路径
os.chdir(CurrentPath)

# 获取需要打乱文件夹的父级文件夹路径
source_folder = tkinter.filedialog.askdirectory(
    title="选择源文件夹",
    initialdir=str(CurrentPath)
)

# 获取当前目录下所有的文件夹
folders = [f for f in pathlib.Path(source_folder).iterdir() if f.is_dir()]
folder_len = len(folders)

# 获取一个顺序的 uuid 列表
uuid_list = sorted([uuid.uuid4().hex for _ in range(folder_len)])
print(uuid_list)

# 创建一个临时目录用于存放中间文件
temp_dir = pathlib.Path(source_folder) / "temp_renaming_dir"
temp_dir.mkdir(exist_ok=True)

# 先将所有文件夹移动到临时目录并使用uuid重命名
for index, item in enumerate(folders, start=1):
    new_uuid = uuid_list.pop(0)
    new_name = temp_dir / new_uuid
    print(f"当前处理第 {index}/{folder_len} 个文件夹: {item.name}, 正在将文件夹改名为: {new_uuid}")
    item.rename(new_name)

# 再将所有文件夹从临时目录移回原目录
for item in temp_dir.iterdir():
    if item.is_dir():
        new_path = pathlib.Path(source_folder) / item.name
        item.rename(new_path)

# 删除临时目录
temp_dir.rmdir()

print("文件夹重命名完成!")